package com.wp.module.wpUser.service.impl;

import java.time.Instant;
import java.util.List;

import com.github.f4b6a3.uuid.alt.GUID;
import com.wp.common.utils.DateUtils;
import com.wp.common.utils.sign.Md5Utils;
import com.wp.module.wpUserDetail.domain.WpUserDetail;
import com.wp.module.wpUserDetail.mapper.WpUserDetailMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.wp.module.wpUser.mapper.WpUserMapper;
import com.wp.module.wpUser.domain.WpUser;
import com.wp.module.wpUser.service.IWpUserService;

/**
 * 用户信息Service业务层处理
 * 
 * @author wp
 * @date 2025-08-23
 */
@Service
public class WpUserServiceImpl implements IWpUserService 
{
    @Autowired
    private WpUserMapper wpUserMapper;

    @Autowired
    private WpUserDetailMapper wpUserDetailMapper;

    /**
     * 查询用户信息
     * 
     * @param id 用户信息主键
     * @return 用户信息
     */
    @Override
    public WpUser selectWpUserById(String id)
    {
        return wpUserMapper.selectWpUserById(id);
    }

    /**
     * 查询用户信息列表
     * 
     * @param wpUser 用户信息
     * @return 用户信息
     */
    @Override
    public List<WpUser> selectWpUserList(WpUser wpUser)
    {
        return wpUserMapper.selectWpUserList(wpUser);
    }

    /**
     * 新增用户信息
     * 默认密码 123456
     * @param wpUser 用户信息
     * @return 结果
     */
    @Override
    public int insertWpUser(WpUser wpUser)
    {
        wpUser.setId(GUID.v7().toString().replace("-", ""));
        wpUser.setAccount(Instant.now().toEpochMilli());
        wpUser.setCreateTime(DateUtils.getNowDate());
        wpUser.setSex(StringUtils.isBlank(
                wpUser.getSex()) ? wpUser.getSex() : "2"
        );
        wpUser.setPassword(Md5Utils.hash("123456"));

        // 创建用户详情
        WpUserDetail wpUserDetail = new WpUserDetail(
                GUID.v7().toString().replace("-", ""),
                wpUser.getId(),
                wpUser.getAccount(),
                wpUser.getNickName(),
                null,
                0,
                0,
                0,
                0,
                0,
                0
        );
        wpUserMapper.insertWpUser(wpUser);
        return wpUserDetailMapper.insertWpUserDetail(wpUserDetail);
    }

    /**
     * 修改用户信息
     * 
     * @param wpUser 用户信息
     * @return 结果
     */
    @Override
    public int updateWpUser(WpUser wpUser)
    {
        wpUser.setUpdateTime(DateUtils.getNowDate());
        return wpUserMapper.updateWpUser(wpUser);
    }

    /**
     * 批量删除用户信息
     * 
     * @param ids 需要删除的用户信息主键
     * @return 结果
     */
    @Override
    public int deleteWpUserByIds(String[] ids)
    {
        return wpUserMapper.deleteWpUserByIds(ids);
    }

    /**
     * 删除用户信息信息
     * 
     * @param id 用户信息主键
     * @return 结果
     */
    @Override
    public int deleteWpUserById(String id)
    {
        return wpUserMapper.deleteWpUserById(id);
    }

    /**
     * 一键修改 用户密码
     * 默认密码 123456，
     * MD5加密，总感觉不安全
     * @param id
     * @return
     */
    @Override
    public int resetWpUserPwd(String id, String account){
        String pwd = Md5Utils.hash("123456");
        return wpUserMapper.resetWpUserPwd(id, account, pwd);
    }
}
